LoginSignup
3
3

More than 3 years have passed since last update.

ESXi + CentOS7 に Docker + minikube + Istio + Knative の導入

Last updated at Posted at 2018-09-26

概要

GCPのGKEなどを利用するにあたり、ローカルに開発環境が欲しくなった。
ほしくなった理由は主に金銭面的なものであるが。。。

ローカル環境へ導入するにあたり、いろいろな記事を参考させていただいたが、
いずれも一つの記事では導入が難しかったので、自分メモとして記載。

前提条件

  • VMware ESXi 6.0
    • CPU/MMU 仮想化:ソフトウェアをMMU化に使用
  • CentOS Linux release 7.5.1804 (Core)
  • SELinux:無効
  • IPv6:無効

ネットワークの調整

echo -n "1" > /proc/sys/net/bridge/bridge-nf-call-iptables

VirtualBox のインストール

ドライバー対応のため

yum -y install libGL* libICE* libSDL* libSM* libX11* libXcursor* libXext* libXinerama* libXmu* libXrender* libXt* libfontconfig* libpng15* libvpx* libxcb* opus kernel-devel gcc make wget perl
rpm -ivh https://download.virtualbox.org/virtualbox/5.2.18/VirtualBox-5.2-5.2.18_124319_el7-1.x86_64.rpm

Docker のインストール

公式HP参照

インストール後、起動 + 自動起動

systemctl start docker
systemctl enable docker

Kubectl のインストール

公式HP参照

minikube のインストール

公式HP参照

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.28.2/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Kuberenetes Cluster の作成

公式HP参照

export MINIKUBE_WANTUPDATENOTIFICATION=false
export MINIKUBE_WANTREPORTERRORPROMPT=false
export MINIKUBE_HOME=$HOME
export CHANGE_MINIKUBE_NONE_USER=true
mkdir $HOME/.kube || true
touch $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
minikube start \
--kubernetes-version=v1.10.5 \
--bootstrapper=kubeadm \
--docker-env NO_PROXY=192.168.100.0/24,127.0.0.1/32 \
--extra-config=controller-manager.cluster-signing-cert-file="/var/lib/localkube/certs/ca.crt" \
--extra-config=controller-manager.cluster-signing-key-file="/var/lib/localkube/certs/ca.key" \
--extra-config=apiserver.admission-control="LimitRanger,NamespaceExists,NamespaceLifecycle,ResourceQuota,ServiceAccount,DefaultStorageClass,MutatingAdmissionWebhook"

Istio のインストール

curl -L https://raw.githubusercontent.com/knative/serving/v0.1.1/third_party/istio-0.8.0/istio.yaml \
  | sed 's/LoadBalancer/NodePort/' \
  | sed 's/-statsd.mapping-config/--statsd.mapping-config/' \
  | kubectl apply --filename -
※ -statsd.mapping-config の置換は yaml ファイルの記載ミスに伴う回避策

kubectl label namespace default istio-injection=enabled

# 状況確認
kubectl get pods --namespace istio-system

Knative のインストール

curl -L https://github.com/knative/serving/releases/download/v0.1.1/release-lite.yaml \
  | sed 's/LoadBalancer/NodePort/' \
  | kubectl apply --filename -

# 状況確認
kubectl get pods --namespace knative-serving

サンプルアプリのデプロイ

公式HP参照

Kubernetes のダッシュボード表示

 minikube dashboard --url=true
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3